package member.util;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.springframework.cglib.core.Signature;

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;

/* JsonSerializer 
 * JSON 으로 변환할 Java Date 가 원하는 형태로 변환 되지 않을 경우 만드는 변환기 역할
 * 1. JsonSerializer<DateType> 를 extends - DataType : 변환할 JavaDataType
 * 2. serialize() 를 overriding - 변환 로직을 구현
 * 
 *  - Domain Object 클래스에 @ JsonSerialize(using=JsonSerializer 클래스객체) 지정
 * 
 */
public class DateFormatJSONSerializer extends JsonSerializer<Date>{

	@Override
	public void serialize(Date value, JsonGenerator gen, SerializerProvider provider)
			throws IOException, JsonProcessingException {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		String date = sdf.format(value); // Date value -> 원하는 포멧의 String(문자열)
		gen.writeString(date);//json값으로 출력 - get.writeXXX(변환한 값)
		
		
	}
	

}
